FROM hub.c.163.com/library/java:8

# 设置镜像作者信息
MAINTAINER itxs "yeling"

# 同步时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 定义 JVM 参数
ENV JAVA_OPTS="\
    -server \
    -Xmx1344m \
    -Xms1344m \
    -Xmn448m \
    -XX:SurvivorRatio=8 \
    -XX:MetaspaceSize=256m \
    -XX:MaxMetaspaceSize=512m \
    -XX:+UseParallelGC \
    -XX:ParallelGCThreads=4 \
    -XX:+UseParallelOldGC \
    -XX:+UseAdaptiveSizePolicy \
    -XX:+PrintGCDetails \
    -XX:+PrintTenuringDistribution \
    -XX:+PrintGCTimeStamps \
    -XX:+HeapDumpOnOutOfMemoryError \
    -XX:HeapDumpPath=/heapdump.hprof \
    -Xloggc:/gc.log \
    -XX:+UseGCLogFileRotation \
    -XX:NumberOfGCLogFiles=5 \
    -XX:GCLogFileSize=10M"

# 从第一阶段复制构建产物
COPY  /target/*.jar /home/java/app.jar
COPY config/ /home/java/config

# 声明需要暴露的端口
EXPOSE 48080

# 设置临时文件目录，以及容器工作目录
VOLUME /tmp
WORKDIR /home/java/

# 创建日志映射目录
RUN mkdir /home/java/logs

# 设置启动命令
ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /home/java/app.jar -Dloader.path=/home/java/config --spring.profiles.active=dev
